home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / site-packages / psyco / support.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2006-03-29  |  6KB  |  172 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.4)
  3.  
  4. '''Psyco general support module.
  5.  
  6. For internal use.
  7. '''
  8. import sys
  9. import _psyco
  10. import __builtin__
  11. error = _psyco.error
  12.  
  13. class warning(Warning):
  14.     pass
  15.  
  16. _psyco.NoLocalsWarning = warning
  17.  
  18. def warn(msg):
  19.     warn = warn
  20.     import warnings
  21.     warn(msg, warning, stacklevel = 2)
  22.  
  23. __version__ = 17039600
  24. if _psyco.PSYVER != __version__:
  25.     raise error, 'version mismatch between Psyco parts, reinstall it'
  26.  
  27. VERSION_LIMITS = [
  28.     33619968,
  29.     33685504,
  30.     33686016,
  31.     33751040,
  32.     33816576]
  33. PYTHON_SUPPORT = hasattr(_psyco, 'turbo_code')
  34. if hasattr(_psyco, 'ALL_CHECKS') and hasattr(_psyco, 'VERBOSE_LEVEL'):
  35.     print >>sys.stderr, 'psyco: running in debugging mode on %s' % _psyco.PROCESSOR
  36.  
  37.  
  38. class Frame:
  39.     pass
  40.  
  41.  
  42. class PythonFrame(Frame):
  43.     
  44.     def __init__(self, frame):
  45.         self.__dict__.update({
  46.             '_frame': frame })
  47.  
  48.     
  49.     def __getattr__(self, attr):
  50.         if attr == 'f_back':
  51.             
  52.             try:
  53.                 result = embedframe(_psyco.getframe(self._frame))
  54.             except ValueError:
  55.                 result = None
  56.             except error:
  57.                 warn('f_back is skipping dead Psyco frames')
  58.                 result = self._frame.f_back
  59.  
  60.             self.__dict__['f_back'] = result
  61.             return result
  62.         else:
  63.             return getattr(self._frame, attr)
  64.  
  65.     
  66.     def __setattr__(self, attr, value):
  67.         setattr(self._frame, attr, value)
  68.  
  69.     
  70.     def __delattr__(self, attr):
  71.         delattr(self._frame, attr)
  72.  
  73.  
  74.  
  75. class PsycoFrame(Frame):
  76.     
  77.     def __init__(self, tag):
  78.         self.__dict__.update({
  79.             '_tag': tag,
  80.             'f_code': tag[0],
  81.             'f_globals': tag[1] })
  82.  
  83.     
  84.     def __getattr__(self, attr):
  85.         if attr == 'f_back':
  86.             
  87.             try:
  88.                 result = embedframe(_psyco.getframe(self._tag))
  89.             except ValueError:
  90.                 result = None
  91.             except:
  92.                 None<EXCEPTION MATCH>ValueError
  93.             
  94.  
  95.         None<EXCEPTION MATCH>ValueError
  96.         if attr == 'f_lineno':
  97.             result = self.f_code.co_firstlineno
  98.         elif attr == 'f_builtins':
  99.             result = self.f_globals['__builtins__']
  100.         elif attr == 'f_restricted':
  101.             result = self.f_builtins is not __builtins__
  102.         elif attr == 'f_locals':
  103.             raise AttributeError, 'local variables of functions run by Psyco cannot be accessed in any way, sorry'
  104.         else:
  105.             raise AttributeError, "emulated Psyco frames have no '%s' attribute" % attr
  106.         self.__dict__[attr] = result
  107.         return result
  108.  
  109.     
  110.     def __setattr__(self, attr, value):
  111.         raise AttributeError, 'Psyco frame objects are read-only'
  112.  
  113.     
  114.     def __delattr__(self, attr):
  115.         if attr == 'f_trace':
  116.             return None
  117.         
  118.         raise AttributeError, 'Psyco frame objects are read-only'
  119.  
  120.  
  121.  
  122. def embedframe(result):
  123.     if type(result) is type(()):
  124.         return PsycoFrame(result)
  125.     else:
  126.         return PythonFrame(result)
  127.  
  128.  
  129. def _getframe(depth = 0):
  130.     '''Return a frame object from the call stack. This is a replacement for
  131. sys._getframe() which is aware of Psyco frames.
  132.  
  133. The returned objects are instances of either PythonFrame or PsycoFrame
  134. instead of being real Python-level frame object, so that they can emulate
  135. the common attributes of frame objects.
  136.  
  137. The original sys._getframe() ignoring Psyco frames altogether is stored in
  138. psyco._getrealframe(). See also psyco._getemulframe().'''
  139.     return embedframe(_psyco.getframe(depth + 1))
  140.  
  141.  
  142. def _getemulframe(depth = 0):
  143.     '''As _getframe(), but the returned objects are real Python frame objects
  144. emulating Psyco frames. Some of their attributes can be wrong or missing,
  145. however.'''
  146.     return _psyco.getframe(depth + 1, 1)
  147.  
  148.  
  149. def patch(name, module = __builtin__):
  150.     f = getattr(_psyco, name)
  151.     org = getattr(module, name)
  152.     if org is not f:
  153.         setattr(module, name, f)
  154.         setattr(_psyco, 'original_' + name, org)
  155.     
  156.  
  157. _getrealframe = sys._getframe
  158. sys._getframe = _getframe
  159. patch('globals')
  160. patch('eval')
  161. patch('execfile')
  162. patch('locals')
  163. patch('vars')
  164. patch('dir')
  165. patch('input')
  166. _psyco.original_raw_input = raw_input
  167. __builtin__.__in_psyco__ = 0 == 1
  168. if hasattr(_psyco, 'compact'):
  169.     import kdictproxy
  170.     _psyco.compactdictproxy = kdictproxy.compactdictproxy
  171.  
  172.